home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 20
/
Cream of the Crop 20 (Terry Blount) (1996).iso
/
doom
/
cddk9605.zip
/
HEADERS.ARJ
/
TYPES.INT
< prev
next >
Wrap
Text File
|
1996-05-17
|
4KB
|
132 lines
{ ───────────────────────────────────────────────────────────────────────── }
{ Name : TYPES.PAS }
{ Description : Predefined variable types for SCRIPTS.PAS }
{ Warning : Expect a full rewrite of this unit soon. }
{ ───────────────────────────────────────────────────────────────────────── }
UNIT Types;
{$B-} { . . . . . . . . . . . . . . . . . . . . Shortcut boolean evaluation }
{$F+} { . . . . . . . . . . . . . . . . . . . . Force far calls for safety }
{$I-} { . . . . . . . . . . . . . . . . . . . Disable input/output checking }
{$O+} { . . . . . . . . . . . . . . . . . . Allow this unit to be overlayed }
{$Q-} { . . . . . . . . . . . . . . Do not generate overflow-checking code }
{$R-} { . . . . . . . . . . . . . . . . Do not generate range-checking code }
{$S-} { . . . . . . . . . . . . . . . . Do not generate stack-checking code }
{$X+} { . . . . . . . . . . . Extended syntax for pChars and function calls }
INTERFACE
USES
Scripts;
TYPE
VarBoolean = OBJECT(tVariable)
BooStrs : ARRAY[False..True] OF STRING[30];
CONSTRUCTOR Init(p:pChar; Addr:Pointer);
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarBoolean = ^VarBoolean;
VarByte = OBJECT(tVariable)
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarByte = ^VarByte;
VarChar = OBJECT(tVariable)
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarChar = ^VarChar;
VarDynamic = OBJECT(tVariable)
DoNotDispose : Boolean;
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
DESTRUCTOR Done; VIRTUAL;
END;
pVarDynamic = ^VarDynamic;
VarLongInt = OBJECT(tVariable)
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarLongInt = ^VarLongInt;
VarTPString = OBJECT(tVariable)
MaxLen : Byte;
CONSTRUCTOR Init(p:pChar; Addr:Pointer; Sz:Byte);
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarTPString = ^VarTPString;
VarString = OBJECT(tVariable)
MaxLen : Word;
CONSTRUCTOR Init(p:pChar; Addr:Pointer; Sz:Byte);
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarString = ^VarString;
VarWord = OBJECT(tVariable)
PROCEDURE Assign(p:pChar); VIRTUAL;
FUNCTION Obtain:STRING; VIRTUAL;
END;
pVarWord = ^VarWord;
VarDirectory = OBJECT(VarDynamic)
PROCEDURE Assign(p:pChar); VIRTUAL;
DESTRUCTOR Done; VIRTUAL;
END;
pVarDirectory = ^VarDirectory;
PROCEDURE RegisterBoolean(Name:pChar; Addr:Pointer);
PROCEDURE RegisterByte(Name:pChar; Addr:Pointer);
PROCEDURE RegisterChar(Name:pChar; Addr:Pointer);
{ Self-explanatory }
PROCEDURE RegisterDirectory(Name:pChar; Addr:Pointer);
{ Registers a pChar holding a directory name. The object makes sure that
the string always contains a terminating slash character (/). The string
is automatically disposed upon termination of the door. }
PROCEDURE RegisterDynamic(Name:pChar; Addr:Pointer);
PROCEDURE RegisterDynamicNoDispose(Name:pChar; Addr:Pointer);
{ These two units register pChars with Concerto. The first procedure
automatically disposes the string upon termination of the door or
variable. Strings can be any size.
SEE: RegisterString NOW! }
PROCEDURE RegisterLongInt(Name:pChar; Addr:Pointer);
PROCEDURE RegisterString(Name:pChar; Addr:Pointer; Len:Byte);
{ Like RegisterDynamic***, but any strings assigned to the
variable are restricted to the specified length. The string
IS NOT disposed upon termination. }
PROCEDURE RegisterTPString(Name:pChar; Addr:Pointer; Len:Byte);
{ Registers a Turbo Pascal string. Len contains the maximum length. }
PROCEDURE RegisterWord(Name:pChar; Addr:Pointer);
{ Self-explanatory }